Static Files (CSS, JavaScript, Image) এর সাথে কাজ

Web Development - জ্যাঙ্গো (Django) - Django এর টেমপ্লেট সিস্টেম
192

Django প্রজেক্টে Static Files হলো সেই ফাইলগুলো, যেগুলো প্রজেক্টের ফ্রন্ট-এন্ড উপস্থাপনার জন্য ব্যবহৃত হয়, যেমন CSS, JavaScript, এবং Images। এগুলো সাধারণত আপনার অ্যাপ্লিকেশনের স্ট্যাটিক ফোল্ডারে রাখা হয় এবং ডেভেলপমেন্ট ও প্রোডাকশন পরিবেশে সেগুলো সার্ভ করা হয়।


Static Files কনফিগারেশন

Django-তে static files ব্যবহারের জন্য কিছু কনফিগারেশন প্রয়োজন হয়, যা settings.py ফাইলে নির্ধারণ করা হয়।

১. STATIC_URL কনফিগারেশন

STATIC_URL সেটিংটি Django অ্যাপ্লিকেশনের স্ট্যাটিক ফাইলগুলো ব্রাউজারের মাধ্যমে অ্যাক্সেস করতে ব্যবহৃত URL রুট নির্ধারণ করে। ডিফল্টভাবে, এটি '/static/' থাকে:

STATIC_URL = '/static/'

এটি নির্দেশ করে যে, স্ট্যাটিক ফাইলগুলো /static/ URL রুটের মাধ্যমে পাওয়া যাবে।

২. STATICFILES_DIRS কনফিগারেশন

আপনি যদি আরও কোনো অতিরিক্ত স্ট্যাটিক ফোল্ডার ব্যবহার করতে চান, যেমন আপনার অ্যাপের বাইরে কোনো ফোল্ডারে স্ট্যাটিক ফাইল সংরক্ষণ করতে, তাহলে STATICFILES_DIRS সেটিংটি ব্যবহার করতে পারেন।

STATICFILES_DIRS = [
    BASE_DIR / "static",  # এখানে BASE_DIR হলো আপনার প্রোজেক্ট ডিরেক্টরি
]

৩. STATIC_ROOT কনফিগারেশন (প্রোডাকশনে)

প্রোডাকশন পরিবেশে, যখন আপনি আপনার স্ট্যাটিক ফাইলগুলো একত্রিত করবেন, তখন STATIC_ROOT সেটিংটি ব্যবহার করতে হবে। এটি নির্ধারণ করে যে, collectstatic কমান্ড চালানোর পর, স্ট্যাটিক ফাইলগুলো কোথায় সংরক্ষিত হবে।

STATIC_ROOT = BASE_DIR / 'staticfiles'

Static Files সরবরাহ করা

১. Django-তে Static File সংরক্ষণ

আপনার Django প্রজেক্টে স্ট্যাটিক ফাইল সংরক্ষণ করার জন্য static/ নামের একটি ডিরেক্টরি তৈরি করুন। এই ডিরেক্টরিতে আপনি আপনার CSS, JavaScript, এবং Image ফাইলগুলো রাখতে পারবেন।

উদাহরণস্বরূপ:

myproject/
    static/
        css/
            style.css
        js/
            app.js
        images/
            logo.png

২. Static File ব্যবহার করা

Django টেমপ্লেটে স্ট্যাটিক ফাইল ব্যবহার করতে, প্রথমে {% load static %} ট্যাগটি ব্যবহার করে স্ট্যাটিক ফাইলগুলো লোড করতে হবে। এরপর আপনি ফাইলগুলোকে ডাইনামিকভাবে উল্লেখ করতে পারেন।

{% load static %}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>My Django App</title>
    <link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
</head>
<body>
    <h1>Welcome to my Django app!</h1>
    <img src="{% static 'images/logo.png' %}" alt="Logo">
    <script src="{% static 'js/app.js' %}"></script>
</body>
</html>

এখানে, {% static 'css/style.css' %} ট্যাগটি স্ট্যাটিক ফাইলটির URL উৎপন্ন করে।

৩. Static File সরবরাহ করা (Development Mode)

ডেভেলপমেন্ট মোডে, Django স্বয়ংক্রিয়ভাবে static files সরবরাহ করে। runserver কমান্ড চালানোর সময় আপনাকে স্ট্যাটিক ফাইল আলাদাভাবে কনফিগার করতে হবে না।

৪. Static File সরবরাহ করা (Production Mode)

প্রোডাকশন পরিবেশে, Django collectstatic কমান্ড ব্যবহার করে স্ট্যাটিক ফাইলগুলো একত্রিত এবং পরিবেশন করতে সাহায্য করে। প্রথমে আপনি collectstatic কমান্ডটি চালাতে হবে:

python manage.py collectstatic

এটি সমস্ত স্ট্যাটিক ফাইল একত্রিত করে এবং STATIC_ROOT ডিরেক্টরিতে সংরক্ষণ করে, যা পরে ওয়েব সার্ভার দ্বারা পরিবেশন করা যাবে।

প্রোডাকশন পরিবেশে স্ট্যাটিক ফাইলগুলি nginx বা Apache এর মাধ্যমে সরবরাহ করা হয়।


Static Files এর নিরাপত্তা

  • স্ট্যাটিক ফাইলের অ্যাক্সেস: Django-তে স্ট্যাটিক ফাইলের মাধ্যমে অ্যাপ্লিকেশনের নিরাপত্তা ঝুঁকি থাকে না, কারণ শুধুমাত্র পাবলিক রিসোর্স (যেমন CSS, JS, ইমেজ) সরবরাহ করা হয়। তবে, গুরুত্বপূর্ণ ফাইল বা ডাটা কখনোই স্ট্যাটিক ফোল্ডারে সংরক্ষণ করা উচিত নয়।
  • স্ট্যাটিক ফাইলের কনটেন্ট কন্ট্রোল: প্রোডাকশন পরিবেশে, আপনি নিশ্চিত করতে পারেন যে স্ট্যাটিক ফাইলগুলোর কনটেন্ট সঠিকভাবে কন্ট্রোল করা হয়েছে, যাতে ইউজারদের কাছে সঠিক ডাটা প্রদর্শিত হয়।

সারাংশ

  • Static files (CSS, JavaScript, Images) হলো এমন ফাইল যেগুলো ডেভেলপমেন্ট এবং প্রোডাকশন পরিবেশে ব্রাউজারে সরবরাহ করা হয়।
  • Django-তে স্ট্যাটিক ফাইলের জন্য কিছু কনফিগারেশন যেমন STATIC_URL, STATICFILES_DIRS, এবং STATIC_ROOT ব্যবহার করতে হয়।
  • {% static %} ট্যাগ ব্যবহার করে টেমপ্লেটে স্ট্যাটিক ফাইল সংযুক্ত করা হয়।
  • প্রোডাকশন পরিবেশে collectstatic কমান্ড ব্যবহার করে স্ট্যাটিক ফাইলগুলো একত্রিত করা হয় এবং ওয়েব সার্ভার দ্বারা সরবরাহ করা হয়।
Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...